package de.codi;

public class CODISettings
{

    public static boolean overrideSettings                      = false;

    /**
     * URL (as string) that refers to the SEALS test data reppository service.
     * It can be used to access OAEI anatomy, conference, and benchmark track as
     * testsuites.
     * 
     */
    public static String  SEALS_TDRS_URL                        = "http://seals.sti2.at/tdrs-web/";

    /**
     * Default value for a simople threshold.
     */
    public static double  SIMPLE_THRESHOLD_DEFAULT              = 0.867;

    /**
     * Activate having a functional one-to-one alignment (rockit-part)
     */
    public static boolean functionalOneToOneConstraint          = true;

    /**
     * Activate the subsumption coherence constraints (rockit-part)
     */
    public static boolean subsumptionCoherenceConstraint        = true;

    /**
     * Activate the domain coherence constraints (rockit-part)
     */
    public static boolean domainCoherenceConstraint             = true;

    /**
     * Activate the range coherence constraints (rockit-part)
     */
    public static boolean rangeCoherenceConstraint              = true;

    // stability constraints
    /**
     * Activate the subsumption stability constraints (rockit-part)
     */
    public static boolean subsumptionStabilityConstraint        = true;

    /**
     * Activate the domain stability constraints (rockit-part)
     */
    public static boolean domainStabilityConstraint             = true;

    /**
     * Activate the range stability constraints (rockit-part)
     */
    public static boolean rangeStabilityConstraint              = true;

    /**
     * Weight for the subsumption stability constraints (rockit-part)
     */
    public static double  subsumptionStabilityWeight            = 0.5;

    /**
     * Weight for the domain stability constraints (rockit-part)
     */
    public static double  domainStabilityWeight                 = 0.25;

    /**
     * Weight for the range stability constraints (rockit-part)
     */
    public static double  rangeStabilityWeight                  = 0.25;

    /**
     * Weight for Jaro Winkler (MatrixFiller)
     */
    public static double  jaroWinklerWeight                     = 0.1;

    /**
     * Weight for Cosine (MatrixFiller)
     */
    public static double  cosineWeight                          = 1.0;

    /**
     * Weight for Levensthein (MatrixFiller)
     */
    public static double  levenstheinWeight                     = 0.4;

    /**
     * Weight for Jaccard (MatrixFiller)
     */
    public static double  jaccardWeight                         = 0.6;

    /**
     * Weight for Smith Waterman Gotoh (MatrixFiller)
     */
    public static double  smithWatermanGotohWeight              = 0.8;

    /**
     * Weight for Overlap Coefficient (MatrixFiller)
     */
    public static double  overlapCoefficientWeight              = 1.0;

    /**
     * Weight for jakobTimo Coefficient (MatrixFiller)
     */
    public static double  jakobTimoWeight                       = 0.4;
    public static double  fastJoinWeight                        = 0.5;

    /**
     * Preliminary (StringPreparation)
     */
    public static double  preliminaryWeight                     = 0.1559;

    /**
     * Limit for Classes and Properties for track detection.
     */
    public static int     detectionLimit                        = 750;

    // Codi Part 1 features
    public static boolean structuralFiller                      = true;
    public static boolean individualFiller                      = true;
    public static boolean penaltyString                         = true;
    public static boolean preliminaryString                     = true;
    public static int     mergerString                          = 0;                               // 0 = weight, 1 = max

    // stringFiller
    public static boolean stringNotEqualsPenalty                = true;
    public static boolean stringFillerCosine                    = true;
    public static boolean stringFillerJaccard                   = true;
    public static boolean stringFillerJaroWinkler               = true;
    public static boolean stringFillerLevensthein               = true;
    public static boolean stringFillerOverlapoverlapCoefficient = true;
    public static boolean stringFillerSmithWatermanGotoh        = true;
    public static boolean stringFillerJakobTimo                 = true;
    public static boolean stringFillerFastJoin                  = false;

    public static boolean alcomoSimple                          = true;
    public static int     alcomoTimeOut                         = 180000;

    public static double  versionSettingSplitValue              = 0.91;

    // String not equals penalty
    public static double  PENALTY                               = 0.05;
    // number of top values for the structural part
    public static int     TOPVALUES                             = 6;
    // evaluateEntitiesString - Math.min(0.2, penaltyTemp)
    public static double  PENALTYSPACE                          = 0.2;
    // words with more then 50 characters will be ignored
    public static int     MAXCHARACTER                          = 50;
    // Strings with more then 6 Words will be ignored
    public static int     MAXWORDS                              = 6;

    public static boolean PATHDETECTION                         = false;                           // has to be false, if you build codi for seals
    public static String  PATH                                  = "";
    public static String  PATH_CS                               = "";
}
